package edu.cs421.unitproject;

public class ReserveWords extends Lexer {

	public static void reserve (KeyWord t){
		keywords.put(t.lexeme, t);
	}

	public static void loadReservedTokens(){
		reserve(new KeyWord(Tag.ABSTRACT,"abstract"));
		reserve(new KeyWord(Tag.BOOLEAN,"boolean"));
		reserve(new KeyWord(Tag.BREAK,"break"));
		reserve(new KeyWord(Tag.BYTE,"byte"));
		reserve(new KeyWord(Tag.CASE,"case"));
		reserve(new KeyWord(Tag.CATCH,"catch"));
		reserve(new KeyWord(Tag.CHAR,"char"));
		reserve(new KeyWord(Tag.CLASS,"class"));
		reserve(new KeyWord(Tag.CONST,"const"));
		reserve(new KeyWord(Tag.CONTINUE,"continue"));
		reserve(new KeyWord(Tag.DEFAULT,"default"));
		reserve(new KeyWord(Tag.DO,"do"));
		reserve(new KeyWord(Tag.DOUBLE,"double"));
		reserve(new KeyWord(Tag.ELSE,"else"));
		reserve(new KeyWord(Tag.EXTENDS,"extends"));
		reserve(new KeyWord(Tag.FINAL,"final"));
		reserve(new KeyWord(Tag.FINALLY,"finally"));
		reserve(new KeyWord(Tag.FLOAT,"float"));
		reserve(new KeyWord(Tag.FOR,"for"));
		reserve(new KeyWord(Tag.GOTO,"goto"));
		reserve(new KeyWord(Tag.IF,"if"));
		reserve(new KeyWord(Tag.IMPLEMENTS,"implements"));
		reserve(new KeyWord(Tag.IMPORT,"import"));
		reserve(new KeyWord(Tag.INSTANCEOF,"instanceof"));
		reserve(new KeyWord(Tag.INT,"int"));
		reserve(new KeyWord(Tag.INTERFACE,"interface"));
		reserve(new KeyWord(Tag.LONG,"long"));
		reserve(new KeyWord(Tag.NATIVE,"native"));
		reserve(new KeyWord(Tag.NEW,"new"));
		reserve(new KeyWord(Tag.PACKAGE,"package"));
		reserve(new KeyWord(Tag.PRIVATE,"private"));
		reserve(new KeyWord(Tag.PROTECTED,"protected"));
		reserve(new KeyWord(Tag.PUBLIC,"public"));
		reserve(new KeyWord(Tag.RETURN,"return"));
		reserve(new KeyWord(Tag.SHORT,"short"));
		reserve(new KeyWord(Tag.STATIC,"static"));
		reserve(new KeyWord(Tag.STRICTFP,"strictfp"));
		reserve(new KeyWord(Tag.SUPER,"super"));
		reserve(new KeyWord(Tag.SWITCH,"switch"));
		reserve(new KeyWord(Tag.SYNCHRONIZED,"synchronized"));
		reserve(new KeyWord(Tag.THIS,"this"));
		reserve(new KeyWord(Tag.THROW,"throw"));
		reserve(new KeyWord(Tag.THROWS,"throws"));
		reserve(new KeyWord(Tag.TRANSIENT,"transient"));
		reserve(new KeyWord(Tag.TRY,"try"));
		reserve(new KeyWord(Tag.VOID,"void"));
		reserve(new KeyWord(Tag.VOLATILE,"volatile"));
		reserve(new KeyWord(Tag.WHILE,"while"));
		
		reserve(new KeyWord(Tag.BOOL,"true"));
		reserve(new KeyWord(Tag.BOOL,"false"));
	}
}
